package controller;

import model.Administrador;
import model.Endereco;
import dao.AdministradorDAO;

public class AdministradorController {

	private AdministradorDAO administradorDAO;

	public boolean inserirAdministrador(String cpf, String nome, String email, 
			String senha, String profissao, String dataNascimento, String logradouro, 
			String numero, String cidade, String cep) throws Exception {
		Endereco endereco = new Endereco(logradouro, numero, cidade, cep);
		Administrador administrador = new Administrador(0, cpf, nome, email, senha, profissao, dataNascimento, endereco);
		
		return getAdministradorDAO().inserir(administrador);
	}

	public boolean alterarAdministrador(int id, String cpf, String nome, String email, 
			String senha, String profissao, String dataNascimento, String logradouro, 
			String numero, String cidade, String cep) throws Exception {
		
		Administrador administrador = buscarAdministradorPorId(id);
		
		administrador.setCpf(cpf);
		administrador.setNome(nome);
		administrador.setEmail(email);
		administrador.setSenha(senha);
		administrador.setProfissao(profissao);
		administrador.setDataNascimento(dataNascimento);
		//Endereco
		administrador.getEndereco().setLogradouro(logradouro);
		administrador.getEndereco().setNumero(numero);
		administrador.getEndereco().setCidade(cidade);
		administrador.getEndereco().setCep(cep);

		return getAdministradorDAO().alterar(administrador);
	}

	public boolean excluirAdministrador(int id) throws Exception {
		Administrador administrador = buscarAdministradorPorId(id);
		return getAdministradorDAO().delete(administrador);
	}

	public Boolean verificaAdministradorSenha(String email, String senha) throws Exception {
		return getAdministradorDAO().verificaAdministradorSenha(email, senha);
	}

	public Administrador buscarAdministradorPorId(int id) throws Exception {
		return getAdministradorDAO().buscarAdministradorPorId(id);
	}

	public AdministradorDAO getAdministradorDAO() {
		if (administradorDAO == null) {
			administradorDAO = new AdministradorDAO();
		}
		return administradorDAO;
	}

}
